![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
indicative-parser
Advanced tools
Converts indicative rules and messages schema to a tree
Indicative parser pre-compiles the Indicative schema to a recursive tree of nodes. Each node is given one of the following types.
object
: Node with one or more nested children.array
: Node with one or more index or wildcard based nested children.literal
: The leaf nodes.Do note, that the literal
type is not equal to literal values in Javascript. For parser, the literal nodes are nodes with no leaf.
If you look at the Indicative schema, it is very concise and developer friendly. However, the same schema needs to be parsed to execute the validation rules.
{
username: 'required',
'account.type': 'required|in:email,social'
}
One way is to loop over the schema object keys, split them by .
and then inline execute the validations for each field. This process is very straight forward, but will have performance issues.
Instead, we parse the schema into a tree. The tree is later converted to an array of top level functions that are highly optimized for performance.
Install the package from npm registry as follows:
npm i indicative-parser
# yarn
yarn add indicative-parser
and then use it as follows:
import { rulesParser } from 'indicative-parser'
rulesParser({
username: 'required',
'account.type': 'required|in:email,social'
})
Above code outputs the following tree.
{
"username": {
"type": "literal",
"rules": [
{
"name": "required",
"args": []
}
]
},
"account": {
"rules": [],
"type": "object",
"children": {
"type": {
"type": "literal",
"rules": [
{
"name": "required",
"args": []
},
{
"name": "in",
"args": [
"email",
"social"
]
}
]
}
}
}
}
The parser also allows creating declarative schema that has static type information along with the parsed tree. The type information is really helpful for Typescript projects.
import { rulesParser, t } from 'indicative-parser'
rulesParser(t.schema({
username: t.string(),
account: t.object().members({
type: t.string(validations.in(['email', 'social']))
})
}))
FAQs
Schema parser for Indicative
The npm package indicative-parser receives a total of 5,374 weekly downloads. As such, indicative-parser popularity was classified as popular.
We found that indicative-parser demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.